package com.mi.service.impl;

import java.sql.Timestamp;
import java.util.List;

import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.mi.bean.Manager;
import com.mi.db.DBProvider;
import com.mi.service.IManagerRegisterService;
import com.mi.utils.MyUtils;

public class ManagerRegisterServiceImpl implements IManagerRegisterService {

	/**
	 * 保存和修改管理员信息
	 * 
	 * @param adminB 参数实体
	 * @return 操作结果
	 */
	@Override
	public int saveOrUpdateAdminInf(Manager managerA) {
		// 默认返回值
		int i = 0;
		// 新增和修改的区别在于：参数实体类的主键字段是否为null，为null则是新增操作，不为null则是修改操作
		// 新增的sql语句
		if (managerA != null) {
			// 新增操作
			if (managerA.getManager_count() == null) {
				// 新增sql语句
//				String strSql = "insert into manager (manager_name,manager_psw) values(?,?)";
				
				String strSql = "insert into manager (manager_name,manager_psw,manager_tel,"
						+ "manager_img,manager_address,manager_email，manager_date)"
						+ " values(?,?,?,?,?,?,?)";
				
				// 调用db层进行数据库操作
				/*i = MyUtils.getInstance(DBProvider.class).update(strSql, 
						managerA.getManager_name(),
						managerA.getManager_psw());*/
				
				Timestamp t=new Timestamp (managerA.getManager_date().getTime());//转换后的日期函数
				i = MyUtils.getInstance(DBProvider.class).update(strSql, 
						managerA.getManager_name(),
						managerA.getManager_psw(),
						managerA.getManager_tel(),
						managerA.getManager_img(),
						managerA.getManager_address(),
						managerA.getManager_email(),
						t
						);
				
			} else {
				// 修改操作
			}
		}
		return i;
	}

	/**
	 * 根据用户名/手机号/邮箱和密码，进行后台数据库的查询
	 * 
	 * @param customerB 要查询的实体类
	 * @return 返回查询的结果集
	 */
	@Override
	public List<Manager> queryLoginInfo(Manager managerA) {
		// 调用db层进行数据库操作
		// 登录查询语句

		// 获取用户的输入值
		String strMan = managerA.getManager_name();

		// 判断是手机号还是邮箱，选择不同的查询语句，进行相应查询
		if (strMan.contains("@")) {
			// 邮箱登录
			String sql = "select * from manager where manager_email = ? and manager_psw = ?";
			// 调用db层进行数据库操作
			// ResultSetHandler接口de实现类--BeanListHandler把结果集中的每行数据都封装成一个指定的JavaBean对象
			// 将数据封装成list<JavaBean>形式
			List<Manager> lstManager = MyUtils.getInstance(DBProvider.class).query(sql,
					new BeanListHandler<Manager>(Manager.class), managerA.getManager_name(),
					managerA.getManager_psw());
			return lstManager;
		} else {
			// 手机号登录
			String sql = "select * from manager where manager_tel = ? and manager_psw = ?";
			// 调用db层进行数据库操作
			// ResultSetHandler接口de实现类--BeanListHandler把结果集中的每行数据都封装成一个指定的JavaBean对象
			// 将数据封装成list<JavaBean>形式
			List<Manager> lstManager = MyUtils.getInstance(DBProvider.class).query(sql,
					new BeanListHandler<Manager>(Manager.class), managerA.getManager_name(),
					managerA.getManager_psw());
			return lstManager;
		}
	}
}
